home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / CHCMKG.BAS < prev    next >
Encoding:
BASIC Source File  |  1999-01-04  |  5.8 KB  |  153 lines

  1. ECLARE SUB hextodec (hexx$, sum&)             'Declares function to convert HEX to DECIMAL
  2. DECLARE SUB hexi (hex1$, hex2$, hex3$, op$)    'Declares function for some HEX math functions
  3. croatia1998$ = CHR$(49) + CHR$(57) + CHR$(57) + CHR$(56) + " " + CHR$(67) + CHR$(114) + CHR$(111) + CHR$(97) + CHR$(116) + CHR$(105) + CHR$(97)         '"1998 Croatia"
  4. hotmail$ = CHR$(64) + CHR$(104) + CHR$(111) + CHR$(116) + CHR$(109) + CHR$(97) + CHR$(105) + CHR$(108) + CHR$(46) + CHR$(99) + CHR$(111) + CHR$(109)    '"Hotmail.com"
  5. Borna$ = CHR$(66) + CHR$(111) + CHR$(114) + CHR$(110) + CHR$(97) ' "Borna" *** This is inteaded encrypting program, you can't          ***
  6. Janes$ = CHR$(74) + CHR$(97) + CHR$(110) + CHR$(101) + CHR$(115) ' "Janes" *** change my name just editing program with ascii editor ;)***
  7. name$ = ""
  8. COLOR 15
  9. PRINT "               Cruahead CrackMe V1.0  KeyGen "                      'Print
  10. COLOR 14  
  11. PRINT "               By " + Borna$ + " " + Janes$ + " " + croatia1998$    'logo of 
  12. PRINT "              Email - " + Borna$ + Janes$ + hotmail$                'the program
  13. PRINT "        ------------------------------------------"
  14. 6 name$ = "": COLOR 7: PRINT "User name:  "; : COLOR 22: LOCATE CSRLIN, POS(0) - 1: PRINT "█";   'Print "User name:"
  15.  
  16. DO                           'This is routine for input user name
  17. i$ = INKEY$
  18. IF NOT i$ = "" THEN
  19. i% = ASC(i$)
  20. SELECT CASE i%
  21.  CASE 13               'If ENTER hited then continue
  22.  COLOR 0, 0: COLOR 15
  23.  REM LOCATE CSRLIN, POS(0) - 1: PRINT " "
  24.  EXIT DO
  25.      CASE 27           'If Esc hited then exit
  26.      COLOR 0, 0: LOCATE CSRLIN, POS(0) - (LEN(name$) + 2): PRINT SPACE$(LEN(name$) + 2): COLOR 7, 0: END
  27.      CASE 8            'If backspace hited then delete last char of name
  28.      IF NOT name$ = "" THEN
  29.      name$ = MID$(name$, 1, LEN(name$) - 1)
  30.      LOCATE CSRLIN, POS(0) - 2: PRINT "  ";
  31.      LOCATE CSRLIN, POS(0) - 2
  32.      COLOR 22:  PRINT "█"; : COLOR 0, 0
  33.      END IF
  34.      CASE IS > 31      'I hited any other char add it to name
  35.    IF NOT LEN(name$) >= 10 THEN              'Maximum lenght of name(10)
  36.    COLOR 15: name$ = name$ + i$: LOCATE CSRLIN, POS(0) - 1: PRINT i$;
  37.    COLOR 22: PRINT "█"; : COLOR 0, 0
  38.    END IF
  39.  CASE ELSE
  40. END SELECT
  41. END IF
  42. LOOP
  43.  
  44. er% = 0                              'Search 
  45. FOR lop% = 1 TO LEN(name$)           'the    
  46. lett% = ASC(MID$(name$, lop%, 1))    'name    -Name    
  47. SELECT CASE lett%                    'for     -can
  48. CASE 56 TO 90                        'any     -containing
  49. CASE 97 TO 122                       'other   -only
  50. CASE ELSE                            'char    -letters
  51. er% = 1                              'beside
  52. END SELECT                           'the
  53. NEXT lop%                            'letter
  54.  
  55. IF er% = 1 THEN      'If found then display error
  56. LOCATE CSRLIN, 12 + LEN(name$): PRINT " "
  57. LOCATE CSRLIN, 1: COLOR 15: PRINT "Name can containing only letters (no spaces,numbers...)!";  'OVDJE PROMJENIT KOLKO NAJMANJE SLOVA MOZE IMAT IME(one,two)!!
  58. SLEEP 2: LOCATE CSRLIN, 1: PRINT SPACE$(60);
  59. COLOR 0, 0: LOCATE CSRLIN - 1, 1: PRINT SPACE$(77); : COLOR 7, 0
  60. LOCATE CSRLIN, 1: GOTO 6
  61. END IF
  62.  
  63.  
  64. IF LEN(name$) < 1 THEN            'If lenght of name is less then one then display error
  65. LOCATE CSRLIN, 12 + LEN(name$): PRINT " "
  66. LOCATE CSRLIN, 1: COLOR 15: PRINT "Name must be the least one character long!";  
  67. SLEEP 2: LOCATE CSRLIN, 1: PRINT SPACE$(50);
  68. LOCATE CSRLIN - 1, 12: PRINT "  "; : LOCATE CSRLIN, 1: GOTO 6
  69. END IF
  70. LOCATE CSRLIN, POS(0) - 1: PRINT " "
  71.  
  72. GOSUB genser               'Call subroutine "GenSer" to generate serial
  73.  
  74. COLOR 7: PRINT "Serial number: "; : COLOR 15: PRINT ser$     'Print correct serial
  75. COLOR 15: PRINT "Enjoy!!"
  76. COLOR 7: PRINT "": PRINT "Press any key to continue!"
  77. DO: LOOP UNTIL INKEY$ <> ""
  78. END
  79.  
  80.  
  81. genser:     'Routine that generates correct serial number
  82. HEXNAME$ = ""                         'Clear HexName$
  83. name$ = UCASE$(name$)                 'Name = Name in uppercase
  84. FOR NAM% = 1 TO LEN(name$)                                           'HexName$ = Sum of
  85. CALL hexi(HEXNAME$, HEX$(ASC(MID$(name$, NAM%, 1))), HEXNAME$, "+")  'all characters
  86. NEXT NAM%                                                            'of name(in HEX)
  87. REM PRINT HEXNAME$
  88. CALL hexi(HEXNAME$, "5678", xoredname$, "xor")                       'XoredName$ = HexName$ XOR "5678"
  89. CALL hexi(xoredname$, "1234", serial$, "xor")                        'Serial$ = XoredName$ XOR "1234"
  90. CALL hextodec(serial$, ser&)                                         'Serial number = Ascii value of Serial$
  91. ser$ = LTRIM$(STR$(ser&))
  92. RETURN                     'Return(RET)
  93. '--------------------------------------END OF CODE-------------------------------------------
  94.  
  95. SUB hexi (hex1$, hex2$, hex3$, op$)
  96. CALL hextodec(hex1$, sum1&)
  97. CALL hextodec(hex2$, sum2&)
  98. SELECT CASE op$
  99. CASE ">"
  100. hex3$ = HEX$(sum1& >= sum2&)
  101. CASE "xor"
  102. hex3$ = HEX$(sum1& XOR sum2&)
  103. CASE "-"
  104. hex3$ = HEX$(sum1& - sum2&)
  105. CASE "+"
  106. hex3$ = HEX$(sum1& + sum2&)
  107. CASE "*"
  108. hex3$ = HEX$(sum1& * sum2&)
  109. CASE "/"
  110. hex3$ = HEX$(sum1& / sum2&)
  111. END SELECT
  112. END SUB
  113.  
  114. SUB hextodec (hexx$, sum&)
  115.  
  116. i$ = UCASE$(hexx$)
  117. br% = 0
  118. nn% = LEN(i$)
  119. header& = 16
  120.  
  121. FOR i% = nn% TO 1 STEP -1
  122. br% = br% + 1
  123. IF br% >= 3 THEN header& = header& * 16
  124. IF i% = LEN(i$) THEN
  125. il$ = MID$(i$, LEN(i$), 1)
  126. SELECT CASE ASC(il$)
  127. CASE 48 TO 57
  128. sum& = sum& + (ASC(il$) - 48)
  129.  CASE 65 TO 70
  130.  sum& = sum& + ((ASC(il$) - 65) + 10)
  131. END SELECT
  132.  
  133. ELSE
  134. Char$ = MID$(i$, i%, 1)
  135. IF i% = LEN(i$) THEN
  136. SELECT CASE ASC(il$)
  137. CASE 48 TO 57
  138. sum& = sum& + (ASC(il$) - 48)
  139.  CASE 65 TO 70
  140.  sum& = sum& + ((ASC(il$) - 65) + 10)
  141. END SELECT
  142. END IF
  143. SELECT CASE ASC(Char$)
  144. CASE 48 TO 57
  145. sum& = sum& + ((ASC(Char$) - 48) * header&)
  146. CASE 65 TO 70
  147. sum& = sum& + (((ASC(Char$) - 65) + 10) * header&)
  148. END SELECT
  149. END IF
  150. NEXT i%
  151. END SUB
  152.  
  153.